//
//  StatusDAL.swift
//  01- 搭建框架
//
//  Created by apple on 15/10/30.
//  Copyright © 2015年 任伟. All rights reserved.
//

import Foundation

/// MARK: - 微博数据源访问层
class StatusDAL {
    
    /// 加载微博数据
    class func loadStatus() {
        
        // 1. 检查本地是否存在数据缓冲
        // 2. 如果有返回本地数据
        // 3. 如果没有, 加载网络数据
        // 4. 将网络数据保存至本地数据库
        // 5. 返回网络数据
    }
    
    /// 保存缓冲数据
    class func saveCacheData(array: [[String: AnyObject]]) {
        
        // print("缓存网络数据\(array)")
        
        guard let userId = UserAccountViewModel.sharedUserAccount.account?.uid else {
            
            print("用户没有登录")
            return
        }
        
        // 1. 准备 SQL
        /**
            1. 微博 id -> 通过字典获取
            2. 微博 json -> 字典序列化
            3. userId -> 登录的用户
        */
        let sql = "INSERT OR REPLACE INTO T_Status (statusId, status, userId) VALUES (?, ?, ?);"
        
        // 2. 遍历数组 - 插入数据
        SQLiteManager.sharedManager.queue.inTransaction { (db, rollback) -> Void in
            
            for dict in array {
            
                // 1> 微博 id
                let statusId = dict["id"] as! Int
                
                // 2> 序列化成 json 字符串 -> NSData
                let json = try! NSJSONSerialization.dataWithJSONObject(dict, options: [])
                
                if !db.executeUpdate(sql, statusId, json, userId) {
                
                    rollback.memory = true
                    break
                }
                
            }
        }
        
        print("缓存完成")
    }
    
    /// 加载本地数据 - 准备函数
    class func checkCacheData(since_id: Int, max_id: Int) {
        guard let userId = UserAccountViewModel.sharedUserAccount.account?.uid else {
        
            print("用户没有登录")
            return
        }
        
        print("下拉刷新\(since_id) 上啦刷新\(max_id)")
    }
}